// dane.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>


int _tmain(int argc, _TCHAR* argv[])
{
	long i;
	char *Chan1path = "D:/PG/Dyplom/dane/Chan1.dat";
	char *Chan2path = "D:/PG/Dyplom/dane/Chan2.dat";
	char *Chan3path = "D:/PG/Dyplom/dane/Chan3.dat";
	char *Chan4path = "D:/PG/Dyplom/dane/Chan4.dat";
	FILE *Chan1file, *Chan2file, *Chan3file, *Chan4file;

	char *Chan1pathf = "D:/PG/Dyplom/dane/Chan1float.dat";
	char *Chan2pathf = "D:/PG/Dyplom/dane/Chan2float.dat";
	char *Chan3pathf = "D:/PG/Dyplom/dane/Chan3float.dat";
	char *Chan4pathf = "D:/PG/Dyplom/dane/Chan4float.dat";
	FILE *Chan1filef, *Chan2filef, *Chan3filef, *Chan4filef;

	if((Chan1file=fopen(Chan1path, "rb"))==NULL) {
		printf("Nie moge otworzyc pliku Chan1file");
		return 0;
	}
	if((Chan2file=fopen(Chan2path, "rb"))==NULL) {
		printf("Nie moge otworzyc pliku Chan2file");
		return 0;
	}
	if((Chan3file=fopen(Chan3path, "rb"))==NULL) {
		printf("Nie moge otworzyc pliku Chan3file");
		return 0;
	}
	if((Chan4file=fopen(Chan4path, "rb"))==NULL) {
		printf("Nie moge otworzyc pliku Chan4file");
		return 0;
	}
	long size = 33552384; // wielkosc pliku sie nie zmienia, wiec nie ma potrzeby odczytywac wielkosci pliku za kazdym razem
	double *chan1 = (double *)malloc(sizeof(double) * size);
	double *chan2 = (double *)malloc(sizeof(double) * size);
	double *chan3 = (double *)malloc(sizeof(double) * size);
	double *chan4 = (double *)malloc(sizeof(double) * size);
	if(fread(chan1, sizeof(double), size, Chan1file) != size) {
		fclose(Chan1file);
		printf("Blad odczytu danych Chan1");
		return 0;
	}
	if(fread(chan2, sizeof(double), size, Chan2file) != size) {
		fclose(Chan2file);
		printf("Blad odczytu danych Chan2");
		return 0;
	}
	if(fread(chan3, sizeof(double), size, Chan3file) != size) {
		fclose(Chan3file);
		printf("Blad odczytu danych Chan3");
		return 0;
	}
	if(fread(chan4, sizeof(double), size, Chan4file) != size) {
		fclose(Chan4file);
		printf("Blad odczytu danych Chan4");
		return 0;
	}
	fclose(Chan1file);
	fclose(Chan2file);
	fclose(Chan3file);
	fclose(Chan4file);


	if((Chan1filef=fopen(Chan1pathf, "wb"))==NULL) {
		printf("Nie moge otworzyc pliku Chan1filef");
		return 0;
	}
	if((Chan2filef=fopen(Chan2pathf, "wb"))==NULL) {
		printf("Nie moge otworzyc pliku Chan2filef");
		return 0;
	}
	if((Chan3filef=fopen(Chan3pathf, "wb"))==NULL) {
		printf("Nie moge otworzyc pliku Chan3filef");
		return 0;
	}
	if((Chan4filef=fopen(Chan4pathf, "wb"))==NULL) {
		printf("Nie moge otworzyc pliku Chan4filef");
		return 0;
	}

	for(i = 0; i < size; ++i) {
		float data;
		data = (float) chan1[i];
		fwrite(&data, sizeof(float), 1, Chan1filef);
		data = (float) chan2[i];
		fwrite(&data, sizeof(float), 1, Chan2filef);
		data = (float) chan3[i];
		fwrite(&data, sizeof(float), 1, Chan3filef);
		data = (float) chan4[i];
		fwrite(&data, sizeof(float), 1, Chan4filef);
	}

	fclose(Chan1filef);
	fclose(Chan2filef);
	fclose(Chan3filef);
	fclose(Chan4filef);

	printf("%i\n", size);
	for(i = 0; i < 20; ++i) {
		//printf("Chan1[%i] = %lf\tChan2[%i] = %lf\tChan3[%i] = %lf\tChan4[%i] = %lf\n", i, chan1[i], i, chan2[i], i, chan3[i], i, chan4[i]);
		printf("Chan1[%i] = %lf\n", i, chan1[i]);
	}

	getchar();
	return 0;
}

